Contemporary processors are generally able to process information more quickly than they are able to read from memory. In string matching, a processor determines whether a data stream or a portion of a data stream matches one or more predefined patterns. That data stream may, for example, be a data stream entering a computer node from a remote computer node. The predefined patterns may, for example, indicate that a virus or other undesirable code is present in the data stream and there may be very many such patterns to be compared to the data stream. Those patterns may therefore be stored in memory and processor access to those patterns to perform pattern comparison and matching may slow the process of searching for pattern matches.